From 697ab0905c59561562dc52cd3b925781e07814f3 Mon Sep 17 00:00:00 2001
From: Philippe Proulx <eeppeliteloop@gmail.com>
Date: Wed, 2 Nov 2016 01:40:12 -0400
Subject: [PATCH] m4/ax_lib_elfutils.m4: add cache variable

This patch adds an autoconf cache variable to override the
AC_RUN_IFELSE() test result when cross-compiling.

Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
[Philippe: grabbed from this pull request:
    https://github.com/efficios/babeltrace/pull/52
]
---
 m4/ax_lib_elfutils.m4 | 32 +++++++++++++++++---------------
 1 file changed, 17 insertions(+), 15 deletions(-)

diff --git a/m4/ax_lib_elfutils.m4 b/m4/ax_lib_elfutils.m4
index fcfe06b..f4fcb0d 100644
--- a/m4/ax_lib_elfutils.m4
+++ b/m4/ax_lib_elfutils.m4
@@ -21,7 +21,9 @@
 # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 #
 # Check the currently installed version of elfutils by using the
-# _ELFUTILS_PREREQ macro defined in elfutils/version.h.
+# `_ELFUTILS_PREREQ` macro defined in <elfutils/version.h>.
+#
+# The cache variable for this test is `bt_cv_lib_elfutils`.
 #
 # AX_LIB_ELFUTILS(MAJOR_VERSION, MINOR_VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
 # ---------------------------------------------------------------------------
@@ -29,7 +31,6 @@ AC_DEFUN([AX_LIB_ELFUTILS], [
 	m4_pushdef([major_version], [$1])
 	m4_pushdef([minor_version], [$2])
 
-	AC_MSG_CHECKING([for elfutils version >= major_version.minor_version])
 	m4_if([$#], 3, [
 		m4_pushdef([true_action], [$3])
 	], [
@@ -43,20 +44,21 @@ AC_DEFUN([AX_LIB_ELFUTILS], [
 			AC_MSG_ERROR(elfutils >= major_version.minor_version is required)])
 	])
 
-	AC_RUN_IFELSE([
-		AC_LANG_SOURCE([
-			#include <stdlib.h>
-			#include <elfutils/version.h>
+	AC_CACHE_CHECK(
+		[for elfutils version >= major_version.minor_version],
+		[bt_cv_lib_elfutils], [
+			AC_RUN_IFELSE([AC_LANG_SOURCE([
+				#include <stdlib.h>
+				#include <elfutils/version.h>
+
+				int main(void) {
+					return _ELFUTILS_PREREQ(major_version, minor_version) ? EXIT_SUCCESS : EXIT_FAILURE;
+				}
+			])], [bt_cv_lib_elfutils=yes], [bt_cv_lib_elfutils=no])
+		]
+	)
 
-			int main(void) {
-				return _ELFUTILS_PREREQ(major_version, minor_version) ? EXIT_SUCCESS : EXIT_FAILURE;
-			}
-		])
-	],
-		echo yes
-		true_action,
-		echo no
-		false_action)
+	AS_IF([test "x$bt_cv_lib_elfutils" = "xyes"], [true_action], [false_action])
 
 	m4_popdef([false_action])
 	m4_popdef([true_action])
-- 
2.9.3

